Send skin plugin message after session spawn#6327
Open
auvq wants to merge 1 commit into
Open
Conversation
Member
|
Thanks for the PR. I don't think this is the most ideal way to solve the issue - as much as Yet Another Geyser Session Variable is amazing (sarcasm), I think I would rather save this data to a list or variable and check/send that when spawning actually happens. |
Member
|
I agree with Camotoy - a session variable (or maybe on SessionPlayerEntity?) would be nicer compared to continuously re-polling. Happy to merge after that's implemented :) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #6288.
When Floodgate's websocket is the only subscriber on the skin API, Geyser itself delivers the skin to the backend via a plugin message. On Velocity this can land in the null-connection window right after player auth but before the backend connection is ready, and gets silently dropped. Player ends up as Steve/Alex to Java players.
Fix: wait until the session is actually spawned before sending. isSpawned flips to true when the Java server sends the player's first position packet, which only happens after the proxy-backend transition is complete. Polls every 500ms with a 5s safety cap.
Haven't tested live, the timing window is hard to reliably hit.